package dao;

import java.util.ArrayList;
import java.util.List;

import hbt.HbtUtil;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import bean.EstadoVO;


public class HbtEstadoDao {

	private static HbtEstadoDao instancia = null;
	private static SessionFactory sf = null;

	public static HbtEstadoDao getInstancia() {
		if (instancia == null) {
			sf = HbtUtil.getSessionFactory();
			instancia = new HbtEstadoDao();
		}
		return instancia;
	}

	public void grabarEstado(EstadoVO estado) {
		Session session = sf.openSession();
		session.beginTransaction();
		session.persist(estado);
		session.flush();
		session.getTransaction().commit();
		session.close();
	}

	public EstadoVO obtenerEstado(EstadoVO e) {
		Session session = sf.openSession();
		Transaction trans = session.beginTransaction();
		EstadoVO estado = (EstadoVO) session.get(
				EstadoVO.class, e.getNroEstado());
		trans.commit();
		session.close();
		return estado;
	}
	
	@SuppressWarnings("unchecked")
	public List<EstadoVO> obtenerTodos() {
		List<EstadoVO> estados = new ArrayList<EstadoVO>();
		Session session = null;
		session = sf.openSession();
		session.beginTransaction();
		estados = session.createQuery("from EstadoVO").list();
		session.getTransaction().commit();
		session.close();
		return estados;
	}
}
